use crate::error::Result;
use crate::repository::open_repo;
use git2::IndexAddOption;
use log::info;
use std::path::Path;

pub(crate) fn git_add(dir: &Path, rela_path: &Path) -> Result<()> {
    let repo = open_repo(dir)?;
    let mut index = repo.index()?;

    info!("Staging file {rela_path:?} to {dir:?}");
    index.add_all(&[rela_path], IndexAddOption::DEFAULT, None)?;
    index.write()?;

    Ok(())
}
